云安全中心提供的CI/CD插件支持对GitHub中构建的镜像进行自动化安全扫描。使用该功能前,您需要在GitHub中集成CI/CD插件。本文为您介绍如何将云安全中心的CI/CD插件集成到GitHub。
操作步骤
登录GitHub。
单击右上角头像,在下拉菜单中选中Your repositories。
在repositories页签下,单击您要集成CI/CD插件的repository。
单击Actions页签。
在All workflows列表中,定位到要集成CI/CD插件的workflows流水线文件,单击其Actor列的。
在下拉菜单中,选择View workflow file。
在Workflow file for this run中按照以下样例进行集成配置。
name: Docker build and scan security issue by sas-image-scanner on: push: branches: [ main ] pull_request: branches: [ main ] env: REPO_TAG: your_docker_image_repo:your_docker_image_tag jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Build the Docker image run: docker build . --file Dockerfile --tag ${{ env.REPO_TAG }} - name: Scan image by sas-image-scanner run: > docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --network=host sas-image-scanner-registry.cn-hangzhou.cr.aliyuncs.com/sas_public/sas-image-scanner:latest --accessKeyId=${{ secrets.ACCESSKEYID }} --accessKeySecret=${{ secrets.ACCESSKEYSECRET }} --token=${{ secrets.SAS_TOKEN }} --imageId=${{ env.REPO_TAG }}
相关配置参数说明如下:
参数
是否必填
参数说明
accessKeyId
是
建议通过GitHub的secrets变量注入阿里云账号或RAM用户的AccessKey。
重要强烈建议使用RAM用户的AccessKey。阿里云账号的AccessKey是您访问阿里云API的密钥,具有账户的完全权限,请您妥善保管并且不要以任何方式公开到外部渠道,避免被他人利用造成安全威胁。建议您遵循阿里云安全最佳实践,使用RAM用户的AccessKey进行API调用。
accessKeySecret
是
建议通过GitHub的secrets变量注入阿里云账号或RAM用户的AccessKey Secret。
重要强烈建议使用RAM用户的AccessKey Secret。阿里云账号的AccessKey是您访问阿里云API的密钥,具有账户的完全权限,请您妥善保管并且不要以任何方式公开到外部渠道,避免被他人利用造成安全威胁。建议您遵循阿里云安全最佳实践,使用RAM用户的AccessKey进行API调用。
token
是
阿里云云安全中心CI/CD插件的接入Token。获取CI/CD接入Token的具体操作,请参见接入配置。
imageId
是
待扫描镜像标识。默认支持本地扫描。
本地镜像支持传入ImageId或Repo:Tag。
远程镜像需传入RegistryUrl或Repo:Tag,并需填写镜像仓凭证。
重要如果要扫描远程镜像仓中的镜像,您需要正确填写远程镜像的RegistryUrl、RegistryUsername、RegistryPassword的这三个参数。
domain
否
云安全中心接入点。请填写:sas.aliyuncs.com。
registryUrl
否
镜像仓的URL。
重要扫描远程镜像仓中的镜像时,此参数必填。
registryUsername
否
镜像仓登录用户名。
重要扫描远程镜像仓中镜像时,此参数必填。
registryPwd
否
镜像仓登录密码。
重要扫描远程镜像仓中镜像时,此参数必填。
集成配置完成后,您在构建项目时,会自动同步执行镜像安全扫描任务,扫描您项目的镜像是否存在安全风险。
后续步骤
您可以在资产中心的容器页签下,查看镜像安全扫描结果。具体操作,请参见查看镜像扫描结果。